The present invention relates to data transfer or communications, and more particularly to data transfer protocols in communications environments. Even more particularly, the present invention relates to a data link layer protocol in a communication environment, such as a satellite-based wireless network.
Wireless telecommunications systems built around earth orbit relays (satellite links) experience a single hop roundtrip propagation delay of approximately 500 milliseconds. Typical implementations of a data link layer protocol employ a "go-back-N" reject protocol with a window size of between one and seven frames.
In accordance with the "go-back-N" reject protocol, when a frame is received, feedback is transmitted to a sender indicating that a particular frame was received. When propagation delay is high, such as in satellite systems, this acknowledgement of receipt may lag behind the sender (transmitter) by a substantial number of frames, e.g., 10 or 15. Thus, by the time a defective frame is detected, a substantial number of subsequent frames have already been sent. When a defective frame is detected, a "go-back-N" message is returned instead of a message indicating that a frame was received successfully. This "go-back-N" message signals the sender to resend starting with the defective frame. Unfortunately, a number of successfully sent frames may already have been communicated to the receiver before the "go-back-N" message is received by the sender. Thus, these frames are resent, even though they were already successful sent, thus expending time and bandwidth, both precious commodities in satellite communication environments.
Another approach, which is available in typical implementations of data link layer protocols is referred to as selective reject. Selective reject, like "go-back-N" reject provides feedback to the sender regarding each frame that was not successfully received. In the event a frame is not successfully received, a message is sent to the sender indicating the frame not successfully received. The sender then resends only that frame. Thus, if frames 1, 7 and 10, by way of example, for a particular transmission are not received successfully, selective reject requires three transmissions to the sender indicating that frames 1, 7 and 10 need to be resent. This is true whether the rejected frames are discontinuous, as in the example presented, or represent a block of frames, which would commonly be the case if interfering signal momentarily disrupted communications from the sender. In response to these messages, the sender will resend only frames 1, 7 and 10.